/**
 * 校验通用类
 * @autor KING 
 * @createTime 2015-10-06
 */
var Validator = function(){};

Validator.prototype = {
	
		/**
		 * 校验数据
		 * @param id 需要校验的表单的外层id或者class （"#XXXX",".XXXX"）
		 */
		validate:function( id ){

			var flag = true;
			var inputs = $(id +' .input_validate');
			$(id +' .has-error').removeClass('has-error');
			var obj;
			if( inputs && inputs.length > 0 )
			{
				for( var i = 0 ; i < inputs.length ; i++ )
				{
					obj = inputs[i];
					
					if($(obj).attr('notNull')) //验证非空
					{
						if( !checkNotNull( obj ))
						{
							flag =  false;
						}	
					}	
					
					if($(obj).attr('password')) //验证密码6-20位数字字母下划线
					{
						if( !checkPassword( obj ))
						{
							flag =  false;
						}	
					}	
					
					if($(obj).attr('number')) //验证数字
					{
						if( !checkNumber( obj ))
						{
							flag =  false;
						}	
					}	
					
				}	
			}	
			return flag;
		}
};

/**
 * 非空检查
 * @param obj
 * @returns
 */
var checkNotNull = function( obj ){
	var value = obj.value;
	if( value == '' || value == null || value == undefined )
	{
		$(obj).attr('placeholder', $(obj).attr('notNull')).parent().addClass('has-error');
		return false;
	}
	$(obj).parent().removeClass('has-error');
	return true;
};

/**
 * 检查密码格式
 * @param obj
 * @returns
 */
var checkPassword = function( obj ){
	var value = obj.value;
	if( !checkNotNull(obj) )
	{
		return false;
	}
	var patrn=/^(\w){6,20}$/;   
	if (!patrn.exec(value)) 
    {
		$(obj).val('');
		$(obj).attr('placeholder', $(obj).attr('password')).parent().addClass('has-error');
		return false;
    }	
	$(obj).parent().removeClass('has-error');
	return true;
};

/**
 * 校验数字
 * @param obj
 * @returns
 */
var checkNumber = function( obj ){
	var value = obj.value;
	if( !checkNotNull(obj) )
	{
		return false;
	}

	if (isNaN(value)) 
	{
		$(obj).val('');
		$(obj).attr('placeholder', $(obj).attr('number')).parent().addClass('has-error');
		return false;
	}	
	$(obj).parent().removeClass('has-error');
	return true;
};

var validator = new Validator();

